package com.ailanyin.common.database.result;

import com.github.pagehelper.PageInfo;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

/**
 * 通用分页对象
 *
 * @author ailanyin
 * @version 1.0
 * @since 2021/10/15 0015 上午 10:00
 */
@Getter
@Setter
public class CommonPage<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 总记录数
     */
    private long total;

    /**
     * 列表数据
     */
    private List<?> rows;

    /**
     * 消息状态码
     */
    private int code;

    /**
     * 消息内容
     */
    private String msg;

    /**
     * 将PageHelper分页后的list转为分页信息
     */
    public static <T> CommonPage<T> restPage(List<T> list) {
        CommonPage<T> result = new CommonPage<T>();
        PageInfo<T> pageInfo = new PageInfo<T>(list);
        result.setTotal(pageInfo.getTotal());
        result.setRows(pageInfo.getList());
        result.setCode(200);
        return result;
    }

    /**
     * 表格数据对象
     */
    public CommonPage() {
    }

    /**
     * 分页
     *
     * @param list  列表数据
     * @param total 总记录数
     */
    public CommonPage(List<?> list, long total) {
        this.rows = list;
        this.total = total;
    }

}
